	package com.itservice.uzalarm;

import android.app.KeyguardManager;
import android.content.Context;
import android.os.PowerManager;

// Uzalarm内のパワー制御、ロック制御を行う。
// オブジェクトを複数作らせないために、Singleton パターンを用いる
public class UzalarmManager {

	private static UzalarmManager instance;

	// BackGroundからのWakeLock処理用
	private PowerManager pm;
	private PowerManager.WakeLock wakelock;

	// KeyguardManager
	private KeyguardManager km;
	private KeyguardManager.KeyguardLock klock;

	//ロック状態取得
	private boolean	bScreenLocked;

	//コンストラクタ
	public UzalarmManager()
	{
		bScreenLocked = false;
	}

	public static synchronized UzalarmManager getInstance(){
		if(instance == null){ 
			instance = new UzalarmManager();
		}
		return instance;
	}

	/* ディスプレイ表示ON */
	public void PowerManager_Start(Context context) {

		/* BackGroundからの処理 */
		pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
		wakelock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
				| PowerManager.ACQUIRE_CAUSES_WAKEUP
				| PowerManager.ON_AFTER_RELEASE, "UzalarmPowerManager");
		wakelock.acquire();
		wakelock.release();
	}

	/* キーロック解除 */
    public void Keyguard_UnLock(Context context) {
		// Decide which activity to start based on the state of the keyguard.
		km = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
		bScreenLocked = km.inKeyguardRestrictedInputMode();
		klock = km.newKeyguardLock("UzAlarmKeyguard");

		// キーロックされているかどうか
		if(bScreenLocked == true)
		{
			// キーロック中のため、キーロックを解除する。
			klock.disableKeyguard();
		}
	}

	/* キー再ロック */
    public void Keyguard_Lock(Context context) {
		// キーロックを元に戻す
		if(bScreenLocked == true)
		{
			// キーロック元に戻す。
			klock.reenableKeyguard();
			bScreenLocked = false;
		}
	}

}